Data Structures for Optimizing Programs with Explicit Parallelism
نویسندگان
چکیده
When analyzing programs with parallel imperative constructs (e.g., cobegin/coend), standard computer intermediate representations are inadequate. This paper introduces a new relation called the precedence relation and new data structures called the Pamllel Control Flow Graph and Parallel Precedence Graphs for programs with parallel constructs. We show how to report anomalies in parallel programs using Parallel Precedence Grnphs. In sequential control flow graphs, the precedence relation is represented by the dominance relation. With explicit parallelism, the dominance relation is not the same a s the precedence relation; we discuss the significance of the precedence relation and the new data structures for analyzing programs with parallel constructs. These data structures form a concrete basis for the development of efficient algorithms for optimizing parallel programs.
منابع مشابه
A New Algorithm for Global Optimization for Parallelism and Locality
Converting sequential programs to execute on parallel computers is diicult because of the need to globally optimize for both par-allelism and data locality. The choice of which loop nests to parallelize, and how, drastically aaects data locality. Similarly, data distribution directives, such as DISTRIBUTE in High Performance Fortran (HPF), affects available parallelism and locality. What is nee...
متن کاملIdentifying Parallelism in Construction Operations of Cyclic Pointer-Linked Data Structures
Pointer analysis has been an active research field in recent years. Combining pointer analysis and dependence analysis can identify parallelism in programs with pointers or dynamic pointer-linked data structures. After parallelism is identified, programs can be parallelized and then executed on parallel multiprocessor systems to achieve good performance. The compiler analysis techniques that ha...
متن کاملConcrete data structures and functional parallel programming
We present a framework for designing parallel programming languages whose semantics is functional and where communications are explicit. To this end, we specialize Brookes and Geva's generalized concrete data structures with a notion of explicit data layout and obtain a CCC of distributed structures called arrays. We nd that arrays' symmetric replicated structures, suggested by the data-paralle...
متن کاملA General Framework for Analyzing Shared-Memory Parallel Programs
Explicit parallelism greatly complicates the program semantics, especially if concurrent activities are allowed to interact with each other through shared variables. Existing compiler analysis and optimization techniques for sequential programs must be carefully examined before they can be safely applied to parallel programs. In this paper, we present a general framework for analyzing programs ...
متن کاملIn Ipps'93: International Parallel Processing Symposium Explicit Parallel Structuring for Rule-based Programming
This paper presents semantically-based explicit parallel structuring for rule-based programming systems. Explicit parallel structuring appears to be necessary since compile-time dependency analysis of sequential programs has not yielded large scale parallelism and run-time analysis for parallelism is restricted by the execution cost of the analysis. Simple language extensions specifying semanti...
متن کامل